﻿using System;
using QuanLyThongTinCoSo.BaseForm;
using QuanLyThongTinCoSo.Biz;
using QuanLyThongTinCoSo.Common;
using Model = Database.Models;

namespace QuanLyThongTinCoSo.Forms.ThoiDiem
{
    public partial class frmThoiDiemDetail : frmDetail
    {
        private readonly int itemId;

        public frmThoiDiemDetail()
        {
            InitializeComponent();
            Text = @"Thêm mới thời điểm";
            txtTen.Focus();
        }

        public frmThoiDiemDetail(int id)
        {
            InitializeComponent();
            Text = @"Sửa thời điểm";
            txtTen.Focus();

            _fromtype = Constant.TypeForm.Edit;
            itemId = id;

            var biz = new ThoiDiemBiz();
            var model = biz.GetItemById(id) as Model.ThoiDiem;
            if (model == null) return;

            txtTen.Text = model.Ten;
            
            timeFrom.Text = model.From.ToString();
            timeTo.Text = model.To.ToString();
        }

        #region Validation

        protected override bool Validation()
        {
            bool flag = true;

            errorProvider.Dispose();
            
            if (string.IsNullOrEmpty(txtTen.Text))
            {
                errorProvider.SetError(txtTen, "Bạn chưa nhập tên thời điểm. Xin vui lòng kiểm tra lại");
                flag = false;
            }

            if (string.IsNullOrEmpty(timeFrom.Text))
            {
                errorProvider.SetError(timeFrom, "Bạn chưa nhập giá trị bắt đầu. Xin vui lòng kiểm tra lại");
                flag = false;
            }

            if (string.IsNullOrEmpty(timeTo.Text))
            {
                errorProvider.SetError(timeTo, "Bạn chưa nhập giá trị kết thúc. Xin vui lòng kiểm tra lại");
                flag = false;
            }

            return flag;
        }

        #endregion

        #region Insert

        protected override void Insert()
        {
            var model = new Model.ThoiDiem
                            {
                                Ten = txtTen.Text,
                                From = timeFrom.Text,
                                To = timeTo.Text
                            };            

            var biz = new ThoiDiemBiz();
            biz.Insert(model);
        }

        #endregion

        #region Edit

        protected override void Edit()
        {
            var biz = new ThoiDiemBiz();
            var item = biz.GetItemById(itemId) as Model.ThoiDiem;
            if (item != null)
            {
                item.Ten = txtTen.Text;
                item.From = timeFrom.Text;
                item.To = timeTo.Text;

                biz.Update(item);
            }
        }

        #endregion
    }
}